<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>生成随机数</title>
</head>
<body>
  <script>
    // 使用 CSPRNG 实现 Math.random()
    function randomFloat() {
      // 生成 32 位随机数
      const fooArray = new Uint32Array(1);

      // 最大值是 2^32 - 1
      const maxUnit32 = 0xffffffff;

      // 用最大可能的值来除
      return crypto.getRandomValues(fooArray)[0] / maxUnit32;
    }

    console.log(randomFloat());
  </script>
</body>
</html>